/**
 *reduce(callback[, initialValue])个函数作为累加器（accumulator），让每个值（从右到左，亦即从尾到头）缩减为一个值。（与 reduce() 的执行方向相反）
 * */
var sum = [1, 2, 3, 4].reduceRight(function (previous, current, index, array) {
    return previous + current;
}, 10)
console.log(sum)//20

/*说明：
 因为initialValue存在，因此previous值等于initialValue初始值。
 从而current值在第一次调用的时候就是4.
 最后两个参数为索引值index以及数组本身array.*/

//执行过程如下:

/**
 *1、初始设置:
 *  previous=initialValue=10,current=4
 *2、第一个迭代:
 *  previous=(10+4),current=14
 *3、第二次迭代:
 *  previous=(14+3),current=17
 *4、第三次迭代:
 *  previous=(17+2),current=19
 * 5、第四次迭代:
 * previous=(19+1),current=20
 */
